// 扩展官方的rules
import { extend, localize } from 'vee-validate';
import { required, email, min, length, confirmed, max } from 'vee-validate/dist/rules';

// 使用对应的json语言包来定义语言的匹配规则
import zh from 'vee-validate/dist/locale/zh_CN.json';

// 这里规则的name可以随便定义，后面在vue模板中使用对应的名称即可
extend('required', required);
extend('email', email);
extend('min', min);
extend('length', length);
extend('confirmed', confirmed);
extend('max', max);
extend('notPureNum', (value) => {
  return !(/^\d+$/.test(value));
})

// localize指定了使用的是什么样的语言
// 1.使用官方语言包，自定义程度不高，语言蹩脚
// localize('zh_CN', zh);
// 2.自定义json字典类型
localize('zh_CN', {
  messages: {
    ...zh.messages,
    required: "请输入{_field_}"
  },
  names: {
    email: '邮箱',
    password: '密码',
    username: '昵称',
    code: '验证码',
    confirmPassword: '确认密码'
  },
  // 针对不用的规则name设定自定义消息
  fields: {
    email: {
      email: "请输入正确的{_field_}",
      required: "好好忘记他吧，请输入{_field_}"
    },
    username: {
      min: "请在{_field_}至少输入4个字符",
      notPureNum: '不能以纯数字为{_field_}'
    },
    password: {
      confirmed: "密码不能和{_value_}相匹配"
    }
  }
})

